//
//  MainTabBar.swift
//  SinaWeibo
//
//  Created by gaoliang on 15/11/9.
//  Copyright © 2015年 gaoliang. All rights reserved.
//

import UIKit

class MainTabBar: UITabBar {

    // 默认的构造方法
    override init(frame: CGRect) {
        super.init(frame: frame)
         updateUI()
    }
    // 如果重写 init(frame:)系统会默认这个控件是通过代码创建的
    required init?(coder aDecoder: NSCoder) {
        // 如果开发者使用 sb 或者 xib 系统就会崩溃
//        fatalError("init(coder:) has not been implemented")
        super.init(coder: aDecoder)
        updateUI()
    }
    
    
    // 刷新 UI
    private func updateUI () {
        // 添加 加号按钮
        addSubview(composeBtn)
    }
    
    // 懒加载,写按钮
    lazy var composeBtn: UIButton = {
        let btn = UIButton()
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Normal)
        // 给按钮一个尺寸,即大小
        btn.sizeToFit()
        return btn
    }()

    // 由于上面的操作后 加号不在中心,所以需要一个方法来重新显示子控件
    // 重写
    override func layoutSubviews() {
        super.layoutSubviews()
        // 手动修改按钮位置
        
        let w = self.bounds.width / 5
        let h = self.bounds.height
        let rect = CGRect(x: 0, y:0, width:w, height:h)
        
        // 定义递增变量
        var index: CGFloat = 0
        for subView in subviews {
            if subView.isKindOfClass(NSClassFromString("UITabBarButton")!) {
            
            subView.frame = CGRectOffset(rect, index * w, 0)
            
            index += index == 1 ? 2 : 1
            }
        }

        // 设置按钮的位置 使其有突出的效果
       composeBtn.frame = CGRectOffset(rect, w * 2, 0)
        // 将加号按钮放到线的下面
        bringSubviewToFront(composeBtn)
    }
}